gtk4.git
6 years agoshortcutcontroller: Implement mnemonic cycling
Matthias Clasen [Sun, 22 Mar 2020 16:55:49 +0000 (12:55 -0400)]
shortcutcontroller: Implement mnemonic cycling

Make GtkShortcutController collect matching shortcuts
in the same way GtkKeyHash did (accept fuzzy matches
if we don't have any exact matches), and cycle among
the matches if we have multiple.

6 years agoshortcuttrigger: Do elaborate matching for key events
Matthias Clasen [Sun, 22 Mar 2020 13:54:15 +0000 (09:54 -0400)]
shortcuttrigger: Do elaborate matching for key events

Copy the logic from GtkKeyHash for matching key events
to shortcuts.

Adapt shortcuts test to work with the better matching,
by creating more complete key events.

6 years agoshortcuttrigger: Introduce partial matches
Matthias Clasen [Sun, 22 Mar 2020 13:16:57 +0000 (09:16 -0400)]
shortcuttrigger: Introduce partial matches

Allow GtkShortcutTrigger to return partial matches.
Currently, no triggers produce such results, and
GtkShortcutController treats partial matches like
exact ones.

6 years agoAdd tests for shortcut actions
Matthias Clasen [Fri, 20 Mar 2020 03:58:59 +0000 (23:58 -0400)]
Add tests for shortcut actions

6 years agoAdd a test for shortcut triggers
Matthias Clasen [Fri, 20 Mar 2020 02:41:59 +0000 (22:41 -0400)]
Add a test for shortcut triggers

6 years agowidget: Drop the ::popup-menu signal
Matthias Clasen [Thu, 19 Mar 2020 04:56:46 +0000 (00:56 -0400)]
widget: Drop the ::popup-menu signal

This is now done in widgets which have context
menus.

6 years agoplacesview: Stop using ::popup-menu
Matthias Clasen [Thu, 19 Mar 2020 04:52:05 +0000 (00:52 -0400)]
placesview: Stop using ::popup-menu

This signal is going away.

6 years agofilechooser: Stop using ::popup-menu
Matthias Clasen [Thu, 19 Mar 2020 04:07:45 +0000 (00:07 -0400)]
filechooser: Stop using ::popup-menu

This signal is going away.

6 years agomountoperation: Stop using ::popup-menu
Matthias Clasen [Thu, 19 Mar 2020 02:56:53 +0000 (22:56 -0400)]
mountoperation: Stop using ::popup-menu

We can just use a shortcut controller directly.

6 years agogtk-demo: Stop emitting ::popup-menu
Matthias Clasen [Thu, 19 Mar 2020 02:40:13 +0000 (22:40 -0400)]
gtk-demo: Stop emitting ::popup-menu

The signal was not used anyway, in the font explorer demo.

6 years agocolorchooser: Stop using ::popup-menu
Matthias Clasen [Thu, 19 Mar 2020 02:36:31 +0000 (22:36 -0400)]
colorchooser: Stop using ::popup-menu

This signal is going away. Use an action instead.

6 years agorange: Remove ::popup-menu emission
Matthias Clasen [Thu, 19 Mar 2020 01:57:51 +0000 (21:57 -0400)]
range: Remove ::popup-menu emission

This signal is going away, and having context menus
on sliders is not really a thing anyway.

6 years agoscrollbar: Remove :popup-menu forwarding
Matthias Clasen [Thu, 19 Mar 2020 01:55:08 +0000 (21:55 -0400)]
scrollbar: Remove :popup-menu forwarding

This signal is going away.

6 years agoemojichooser: Stop using ::popup-menu
Matthias Clasen [Wed, 18 Mar 2020 20:52:52 +0000 (16:52 -0400)]
emojichooser: Stop using ::popup-menu

This signal is going away. Use an action instead.

6 years agoUse an action for the context menu keybinding
Matthias Clasen [Mon, 16 Mar 2020 02:25:09 +0000 (22:25 -0400)]
Use an action for the context menu keybinding

The ::popup-menu signal is going away.

6 years agoPrint mnemonic triggers clearly
Matthias Clasen [Mon, 16 Mar 2020 02:10:39 +0000 (22:10 -0400)]
Print mnemonic triggers clearly

6 years agoinspector: Show shortcuts
Matthias Clasen [Mon, 16 Mar 2020 00:48:31 +0000 (20:48 -0400)]
inspector: Show shortcuts

At a tab that lists the shortcuts contained in a
GtkShortcutController.

6 years agofilechooser: Trigger the location popup via bindings
Benjamin Otte [Sun, 26 Aug 2018 16:39:51 +0000 (18:39 +0200)]
filechooser: Trigger the location popup via bindings

Simplifies code quite a bit.

6 years agoaccels: Remove GtkAccelGroup
Benjamin Otte [Fri, 24 Aug 2018 06:46:54 +0000 (08:46 +0200)]
accels: Remove GtkAccelGroup

6 years agotestmenubutton: Don't create a GtkAccelGroup
Benjamin Otte [Fri, 24 Aug 2018 05:41:28 +0000 (07:41 +0200)]
testmenubutton: Don't create a GtkAccelGroup

It's unused.

6 years agotestsuite: Remove GtkAccelGroup usage
Benjamin Otte [Fri, 24 Aug 2018 05:40:49 +0000 (07:40 +0200)]
testsuite: Remove GtkAccelGroup usage

6 years agowidget: Remove gtk_widget_add_accelerator()
Benjamin Otte [Fri, 24 Aug 2018 05:34:23 +0000 (07:34 +0200)]
widget: Remove gtk_widget_add_accelerator()

People should use shortcut controllers instead (global, capture).

A side effect of this is that GtkAccelLabel now lost its method to
magically look up accelerators to display. Somebody needs to add that
back later.

6 years agodoc tools: Create AccelLabel image without using GtkAccelGroup
Benjamin Otte [Fri, 24 Aug 2018 05:38:44 +0000 (07:38 +0200)]
doc tools: Create AccelLabel image without using GtkAccelGroup

6 years agotestgtk: Port keyval example to shortcut controllers
Emmanuele Bassi [Thu, 6 Feb 2020 16:55:34 +0000 (16:55 +0000)]
testgtk: Port keyval example to shortcut controllers

6 years agoshortcutcontroller: Implement GtkBuildable
Benjamin Otte [Fri, 24 Aug 2018 05:00:12 +0000 (07:00 +0200)]
shortcutcontroller: Implement GtkBuildable

Use it to allow adding shortcuts to the controller via the usual <child>
method.

6 years agoshortcutaction: Integrate with GtkBuilder property parsing
Benjamin Otte [Fri, 24 Aug 2018 04:58:44 +0000 (06:58 +0200)]
shortcutaction: Integrate with GtkBuilder property parsing

<property name="action">action(win.quit)</property> style action
specifications now work for GtkShortcutAction properties.

6 years agoshortcuttrigger: Add gtk_shortcut_triger_new_parse_string()
Benjamin Otte [Thu, 23 Aug 2018 19:07:36 +0000 (21:07 +0200)]
shortcuttrigger: Add gtk_shortcut_triger_new_parse_string()

And hook it up into the GtkBuilder infrastructure.

6 years agoapplication: Replace accelerator handling with shortcuts
Benjamin Otte [Wed, 22 Aug 2018 23:23:24 +0000 (01:23 +0200)]
application: Replace accelerator handling with shortcuts

API remains the same, but activation is now done via a
shortcutcontroller.

The code uses a controller with global scope so that the
shortcuts are managed with all the other global shortcuts.

6 years agoaccel: Add display arg to gtk_accelerator_parse_with_keycode()
Benjamin Otte [Mon, 20 Aug 2018 22:44:47 +0000 (00:44 +0200)]
accel: Add display arg to gtk_accelerator_parse_with_keycode()

It was using the default display unconditionally.

6 years agoaccelerators: Make gtk_accelerator_parse() return TRUE/FALSE
Benjamin Otte [Mon, 20 Aug 2018 17:45:51 +0000 (19:45 +0200)]
accelerators: Make gtk_accelerator_parse() return TRUE/FALSE

A parse function should return success or not. So do that.

6 years agoshortcuttrigger: Add hash(), equal(), and compare() functions
Benjamin Otte [Mon, 20 Aug 2018 07:18:59 +0000 (09:18 +0200)]
shortcuttrigger: Add hash(), equal(), and compare() functions

Those are useful for putting triggers in hash tables or getting sorted
output.

6 years agoshortcutmanager: Use list models
Matthias Clasen [Wed, 25 Mar 2020 21:28:34 +0000 (17:28 -0400)]
shortcutmanager: Use list models

6 years agoshortcutcontroller: Use a list model for shortcuts
Matthias Clasen [Wed, 25 Mar 2020 21:28:01 +0000 (17:28 -0400)]
shortcutcontroller: Use a list model for shortcuts

6 years agoshortcutaction: Add gtk_shortcut_action_to_string()
Benjamin Otte [Mon, 20 Aug 2018 02:45:10 +0000 (04:45 +0200)]
shortcutaction: Add gtk_shortcut_action_to_string()

For all but the callback action, we can print something useful.

6 years agowidget: Only create a controller if we have shortcuts
Matthias Clasen [Sun, 15 Mar 2020 22:24:52 +0000 (18:24 -0400)]
widget: Only create a controller if we have shortcuts

No point in creating objects that just hold empty lists.

6 years agowidget: Keep keybindings as a GListStore
Benjamin Otte [Mon, 20 Aug 2018 02:18:28 +0000 (04:18 +0200)]
widget: Keep keybindings as a GListStore

This way, we can use shortcut_controller_new_for_model() and avoid all
the special casing about run_class.

6 years agoshortcutcontroller: Add gtk_shortcut_controller_new_for_model()
Benjamin Otte [Sun, 19 Aug 2018 05:12:00 +0000 (07:12 +0200)]
shortcutcontroller: Add gtk_shortcut_controller_new_for_model()

This is mainly for internal use, but I can't see a reason to not have it
public for people who want to maintain their own lists.

I'm sure gnome-builder will never ever find a way to misuse it.

6 years agoshortcutcontroller: Implement GListModel
Benjamin Otte [Sun, 19 Aug 2018 04:26:50 +0000 (06:26 +0200)]
shortcutcontroller: Implement GListModel

After all, this controller is a list of shortcuts.

6 years agogtk-demo: Port the sliding puzzle demo to shortcuts
Benjamin Otte [Sat, 18 Aug 2018 18:01:27 +0000 (20:01 +0200)]
gtk-demo: Port the sliding puzzle demo to shortcuts

6 years agoshortcut: Change the API for creating shortcuts
Benjamin Otte [Sat, 18 Aug 2018 18:01:43 +0000 (20:01 +0200)]
shortcut: Change the API for creating shortcuts

When creating shortcuts, there almost always are a trigger and an action
available for use. So make gtk_shortcut_new() take those as arguments.

Also add gtk_shortcut_new_with_arguments() so people can easily pass
those in, too.

6 years agoshortcut: Add GtkShortcutAction
Benjamin Otte [Sat, 18 Aug 2018 05:32:11 +0000 (07:32 +0200)]
shortcut: Add GtkShortcutAction

Similar to GtkShortcutTrigger, GtkShortCutAction provides all the
different ways to activate a shortcut.

So far, these different ways are supported:

 - do nothing
 - Call a user-provided callback
 - Call gtk_widget_activate()
 - Call gtk_widget_mnemonic_activate()
 - Emit an action signal
 - Activate an action from the widget's action muxer

6 years agoaccelgroup: Remove unneeded APIs
Benjamin Otte [Fri, 17 Aug 2018 04:43:27 +0000 (06:43 +0200)]
accelgroup: Remove unneeded APIs

After the removal of GtkAccelMap, these things are no longer necessary.

6 years agogtk: Remove GtkAccelMap
Emmanuele Bassi [Thu, 6 Feb 2020 16:02:44 +0000 (16:02 +0000)]
gtk: Remove GtkAccelMap

Now that accel paths are gone, the object managing them isn't needed
anymore either.

6 years agogtk: Remove accel paths
Benjamin Otte [Fri, 17 Aug 2018 03:07:32 +0000 (05:07 +0200)]
gtk: Remove accel paths

It's an outdated technology now that everybody is using GActionGroups.

If somebody wanted to support changeable shortcuts, they'd need to
reintroduce it in another way.

6 years agoRemove GtkMnemonicHash
Benjamin Otte [Thu, 16 Aug 2018 05:55:49 +0000 (07:55 +0200)]
Remove GtkMnemonicHash

It's not used anymore.

6 years agowindow: Remove all old mnemonic handling API
Emmanuele Bassi [Thu, 6 Feb 2020 15:54:57 +0000 (15:54 +0000)]
window: Remove all old mnemonic handling API

6 years agoAdd GtkShortcutManager
Emmanuele Bassi [Thu, 6 Feb 2020 15:43:55 +0000 (15:43 +0000)]
Add GtkShortcutManager

This adds an interface for taking care of shortcut controllers with
managed scope.

Only GtkWindow currently implements this interface, so we need to ensure
that we check if any top-level widget we reach is a shortcuts manager
before we call into it.

6 years agolabel: Implement mnemonics using shortcuts
Benjamin Otte [Thu, 16 Aug 2018 03:43:37 +0000 (05:43 +0200)]
label: Implement mnemonics using shortcuts

6 years agoshortcut: Add gtk_shortcut_set_mnemonic_activate()
Benjamin Otte [Thu, 16 Aug 2018 03:18:01 +0000 (05:18 +0200)]
shortcut: Add gtk_shortcut_set_mnemonic_activate()

Makes the shortcut call gtk_widget_mnemonic_activate() upon activation.

6 years agoshortcuttrigger: Add support for mnemonics
Benjamin Otte [Thu, 16 Aug 2018 01:59:24 +0000 (03:59 +0200)]
shortcuttrigger: Add support for mnemonics

Mnemonics need to be triggered with help from the controllers (who
determine the modifiers). Support for that has been added, too.

Mnemonics do not use this yet though.

6 years agowindow: Put F10 accelerator into its own shortcut controller
Benjamin Otte [Wed, 15 Aug 2018 04:43:31 +0000 (06:43 +0200)]
window: Put F10 accelerator into its own shortcut controller

So instead of relying on gtk_window_activate_key(), it's now using
proper infrastructure.

6 years agowindow: Get rid of public APIs that shouldn't be
Benjamin Otte [Wed, 15 Aug 2018 04:19:52 +0000 (06:19 +0200)]
window: Get rid of public APIs that shouldn't be

Event controllers should have replaced all of them.
And if they haven't, apps need to fix their code (I'm
looking at you Gimp).

6 years agogdk: Remove GDK_RELEASE_MASK
Benjamin Otte [Wed, 15 Aug 2018 03:50:28 +0000 (05:50 +0200)]
gdk: Remove GDK_RELEASE_MASK

It was only ever supported by keybindings and those are gone now.

6 years agogtk-demo: Add a dumb demo for shortcut triggers
Benjamin Otte [Sat, 11 Aug 2018 23:40:03 +0000 (01:40 +0200)]
gtk-demo: Add a dumb demo for shortcut triggers

6 years agoshortcutcontroller: Add GtkShortcutScope
Benjamin Otte [Mon, 13 Aug 2018 14:02:27 +0000 (16:02 +0200)]
shortcutcontroller: Add GtkShortcutScope

Allow setting the scope for a controller. The scope determines at what
point in event propagation the shortcuts will be activated.

Local scope is the usual activation, global scope means that the root
widget activates the shortcuts - ie they are activated at the very
start of event propagation (for global capture events) or the very end
(for global bubble events).
Managed scope so far is unimplemented.

This is supposed to be used to replace accelerators and mnemonics.

6 years agoshortcuttrigger: Add gtk_shortcut_trigger_to_label()
Benjamin Otte [Mon, 13 Aug 2018 03:45:12 +0000 (05:45 +0200)]
shortcuttrigger: Add gtk_shortcut_trigger_to_label()

Provide a user-presentable string.

6 years agoaccelgroup: Add gtk_accel_group_print_label()
Benjamin Otte [Mon, 13 Aug 2018 03:19:05 +0000 (05:19 +0200)]
accelgroup: Add gtk_accel_group_print_label()

6 years agoaccellabel: Move gtk_accelerator_get_label() code
Benjamin Otte [Mon, 13 Aug 2018 02:59:49 +0000 (04:59 +0200)]
accellabel: Move gtk_accelerator_get_label() code

The function lives in gtkaccelgroup.c, so there's no need to have that
call a private function in another source file. Instead, make that
other source file call gtk_accelerator_get_label() instead.

6 years agoaccellabel: Get rid of class variables
Benjamin Otte [Mon, 13 Aug 2018 02:51:03 +0000 (04:51 +0200)]
accellabel: Get rid of class variables

We can just look them up as-needed, no need to cache them.

6 years agogtk: Remove bindings
Benjamin Otte [Sun, 12 Aug 2018 20:07:27 +0000 (22:07 +0200)]
gtk: Remove bindings

The whole binding functionality is now handled by shortcuts.

6 years agoRemove bindings activation from GtkEventControllerKey
Emmanuele Bassi [Thu, 6 Feb 2020 15:01:18 +0000 (15:01 +0000)]
Remove bindings activation from GtkEventControllerKey

We're going to use shortcuts soon.

6 years agopopover: Add keynav keybindings
Matthias Clasen [Tue, 17 Mar 2020 21:24:09 +0000 (17:24 -0400)]
popover: Add keynav keybindings

The shortcut controllers are limited to same-native,
so we need to duplicate the Tab and arrow key bindings
for focus handling, as well as the Enter bindings for
activation.

6 years agopopovermenu: Port to shortcuts
Emmanuele Bassi [Thu, 6 Feb 2020 15:00:31 +0000 (15:00 +0000)]
popovermenu: Port to shortcuts

6 years agoaccelgroup: Actually have a default mod mask
Benjamin Otte [Sun, 12 Aug 2018 23:52:04 +0000 (01:52 +0200)]
accelgroup: Actually have a default mod mask

Don't just use a value without initializing it.

6 years agotreeview: Redo event forwarding hack
Benjamin Otte [Sun, 12 Aug 2018 19:32:42 +0000 (21:32 +0200)]
treeview: Redo event forwarding hack

Reorder the event controllers so that key forwarding to the search
entries really happens after shortcut triggering.

6 years agocombobox: Redo key event forwarding hack
Benjamin Otte [Sun, 12 Aug 2018 19:15:37 +0000 (21:15 +0200)]
combobox: Redo key event forwarding hack

Instead of manualling invoking bindings, we now reorder event
controllers inside the treemenu, so that shortcuts run before the event
forwarding.

6 years agowidget: Add private accessor to event controllers
Emmanuele Bassi [Thu, 6 Feb 2020 14:21:10 +0000 (14:21 +0000)]
widget: Add private accessor to event controllers

6 years agoiconview: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 15:07:23 +0000 (17:07 +0200)]
iconview: Port bindings to use shortcuts

6 years agoinfobar: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 14:57:37 +0000 (16:57 +0200)]
infobar: Port bindings to use shortcuts

6 years agolabel: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 14:55:43 +0000 (16:55 +0200)]
label: Port bindings to use shortcuts

6 years agolistbox: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 14:47:58 +0000 (16:47 +0200)]
listbox: Port bindings to use shortcuts

6 years agonotebook: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 14:05:45 +0000 (16:05 +0200)]
notebook: Port bindings to use shortcuts

6 years agoscale: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:53:45 +0000 (15:53 +0200)]
scale: Port bindings to use shortcuts

6 years agoscalebutton: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:50:45 +0000 (15:50 +0200)]
scalebutton: Port bindings to use shortcuts

6 years agoscrolledwindow: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:48:18 +0000 (15:48 +0200)]
scrolledwindow: Port bindings to use shortcuts

6 years agosearchentry: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:44:45 +0000 (15:44 +0200)]
searchentry: Port bindings to use shortcuts

6 years agoshortcutssection: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:42:01 +0000 (15:42 +0200)]
shortcutssection: Port bindings to use shortcuts

6 years agoshortcutswindow: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 13:41:53 +0000 (15:41 +0200)]
shortcutswindow: Port bindings to use shortcuts

6 years agoflowbox: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 01:45:09 +0000 (03:45 +0200)]
flowbox: Port bindings to use shortcuts

6 years agopaned: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 01:45:03 +0000 (03:45 +0200)]
paned: Port bindings to use shortcuts

6 years agospinbutton: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 01:26:35 +0000 (03:26 +0200)]
spinbutton: Port bindings to use shortcuts

6 years agotextview: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 01:24:26 +0000 (03:24 +0200)]
textview: Port bindings to use shortcuts

6 years agofilechooserwidget: Port bindings to use shortcuts
Benjamin Otte [Sun, 12 Aug 2018 01:15:00 +0000 (03:15 +0200)]
filechooserwidget: Port bindings to use shortcuts

6 years agoshortcutcontroller: Add gtk_shortcut_controller_add_shortcut()
Benjamin Otte [Sat, 11 Aug 2018 23:38:50 +0000 (01:38 +0200)]
shortcutcontroller: Add gtk_shortcut_controller_add_shortcut()

... and gtk_shortcut_controller_remove_shortcut().

6 years agoshortcutcontroller: Add private API for running class shortcuts
Benjamin Otte [Sat, 11 Aug 2018 15:42:19 +0000 (17:42 +0200)]
shortcutcontroller: Add private API for running class shortcuts

We don't want regular users to be able to run class shortcuts in their
controllers, so we have to special case that.

6 years agotreeview: Port bindings to use shortcuts
Benjamin Otte [Sat, 11 Aug 2018 15:22:22 +0000 (17:22 +0200)]
treeview: Port bindings to use shortcuts

6 years agowidget: Port bindings to use shortcuts
Benjamin Otte [Sat, 11 Aug 2018 15:22:10 +0000 (17:22 +0200)]
widget: Port bindings to use shortcuts

6 years agodialog: Port binding to use shortcuts
Benjamin Otte [Wed, 8 Aug 2018 20:16:24 +0000 (22:16 +0200)]
dialog: Port binding to use shortcuts

6 years agotext: Port to widget shortcuts
Emmanuele Bassi [Wed, 5 Feb 2020 17:13:44 +0000 (17:13 +0000)]
text: Port to widget shortcuts

6 years agoAllow installing bindings bound to actions
Emmanuele Bassi [Wed, 5 Feb 2020 17:08:37 +0000 (17:08 +0000)]
Allow installing bindings bound to actions

This is just convenience code around GtkShortcut, just like bindings for
signal emission and callback invocation.

6 years agoshortcut: Add action activation
Emmanuele Bassi [Wed, 5 Feb 2020 17:08:14 +0000 (17:08 +0000)]
shortcut: Add action activation

6 years agobindings: Export action activation internally
Emmanuele Bassi [Wed, 5 Feb 2020 17:06:51 +0000 (17:06 +0000)]
bindings: Export action activation internally

We're going to use it, just like we use the signal emission code.

6 years agoshortcut: Add gtk_shortcut_set_callback()
Benjamin Otte [Wed, 8 Aug 2018 17:10:27 +0000 (19:10 +0200)]
shortcut: Add gtk_shortcut_set_callback()

... and gtk_widget_class_add_binding() to go with it.

This allows shortcuts to invoke manually added callbacks.

6 years agoassistant: Port bindings to use shortcuts
Benjamin Otte [Sun, 5 Aug 2018 02:20:58 +0000 (04:20 +0200)]
assistant: Port bindings to use shortcuts

6 years agocombobox: Port bindings to use shortcuts
Benjamin Otte [Sun, 5 Aug 2018 02:30:15 +0000 (04:30 +0200)]
combobox: Port bindings to use shortcuts

6 years agotrigger: Add an alternative trigger
Benjamin Otte [Sun, 5 Aug 2018 02:10:11 +0000 (04:10 +0200)]
trigger: Add an alternative trigger

And use it.

I just added it to GtkWidget just to show that I can.
The real reason I want it is for gamepad/joystick triggers
in games, so that it becomes possible to select 2 different
triggers (gamepad and keyboard) for the same shortcut.

6 years agoshortcut: Add GtkShortcutTrigger
Matthias Clasen [Sun, 15 Mar 2020 13:49:50 +0000 (09:49 -0400)]
shortcut: Add GtkShortcutTrigger

Triggers are meant to describe how to trigger a shortcut.
So far only a keyval + modifiers trigger exists.

6 years agowindow: Port bindings to use shortcuts
Benjamin Otte [Sat, 4 Aug 2018 10:30:53 +0000 (12:30 +0200)]
window: Port bindings to use shortcuts

6 years agobindings: Add more variant types
Benjamin Otte [Sat, 4 Aug 2018 10:27:30 +0000 (12:27 +0200)]
bindings: Add more variant types

Also marshal types that the code in gtkbindings.c doesn't use. These
will be used by gtk_widget_class_add_binding_signal().

6 years agowidget: Add gtk_widget_class_add_shortcut()
Benjamin Otte [Sat, 4 Aug 2018 10:16:00 +0000 (12:16 +0200)]
widget: Add gtk_widget_class_add_shortcut()

This allows adding shortcuts as a replacement for keybindings.